package com.xbongbong.saas.service;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.UserVO;
import com.xbongbong.pro.form.pojo.dto.FormUpdateBatchDTO;
import com.xbongbong.pro.workorder.pojo.WorkOrderTemplateDetailInfoPojo;
import com.xbongbong.saas.domain.entity.WorkOrderFormEntity;

import java.util.List;

/**
 * 工单form 相关业务service
 * @author 魏荣杰
 * @date 2019/3/18 13:40
 * @since v1.0
 * @version v1.0
 */
public interface WorkOrderFormService {
    /**
     * Description: 新建时保存默认form数据
     * @param corpid 公司id
     * @param infoPojo 模板名称
     * @param templateId 模板id
     * @param appId 应用id
     * @param userId 用户id
     * @return void
     * @throws XbbException XbbException
     * @author 魏荣杰
     * @date 2019/3/18 14:02
     * @since v1.0
     */
    void saveDefaultFormAndExplain(String corpid, String userId, WorkOrderTemplateDetailInfoPojo infoPojo, Long appId, Long templateId) throws XbbException;

    /**
     * 获取有权限的工单模板
     * @param loginUser
     * @param appId 应用id
     * @param isFree 是否为自由指派工单，0指定流程，1自由流程
     * @return 工单模板
     */
    List<WorkOrderFormEntity> getTemplateWithPermission(UserVO loginUser, Long appId, Integer isFree);

    /**
     * 获取工单的权限
     * @param loginUser
     * @param formId 应用id
     * @return 工单模板
     */
    boolean getFormPermissionByFormId(UserVO loginUser, Long formId);


    void updateBatch(FormUpdateBatchDTO formUpdateBatchDTO) throws XbbException;
}
